package br.com.projetoRelatorio.resources;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

import org.apache.commons.mail.EmailException;

import br.com.projetoRelatorio.dao.UsuarioDAO;
import br.com.projetoRelatorio.model.UsuarioModel;

@Path("usuario")
public class UsuarioResource {

	@POST
	@Path("/logar")
	@Consumes("application/json")
	public UsuarioModel logar(UsuarioModel usuario){

		return new UsuarioDAO().logar(usuario);


	}

	@POST
	@Path("/salvar")
	@Consumes("application/json")
	@Produces("application/json")
	public void inserirUsuario(UsuarioModel usuario){

		UsuarioDAO usuarioDAO = new UsuarioDAO();
		usuarioDAO.cadastrar(usuario);

	}

	@GET
	@Path("/existeUsuario/{email}")
	@Consumes("application/json")
	@Produces("application/json")
	public Boolean existeUsuario(@PathParam("email") String email){

		return new UsuarioDAO().existeUsuario(email);
	}

//	@POST
//	@Path("/esqueceuSenha")
//	@Consumes("application/json")
//	@Produces("application/json")
//	public Boolean esqueceSenha(UsuarioModel usuario){
//
//
//		try {
//			return new EsqueceuSenha().esqueceuSenha(usuario);
//		} catch (EmailException e) {
//
//			e.printStackTrace();
//			return false;
//		}
//	}
	
	@POST
	@Path("/redefinirSenha")
	@Consumes("application/json")
	@Produces("application/json")
	public void redefinirSenha(UsuarioModel usuario){

		UsuarioDAO usuarioDAO = new UsuarioDAO();
		
		usuario.setSenha(usuario.getSenha());
		usuario.setEmail(usuario.getEmail());
		
		usuarioDAO.redefinirSenha(usuario);
	}
	
	@GET
	@Path("/listarUsuarios")
	@Produces("application/json")
	public List<UsuarioModel> listar() {
		
		return new UsuarioDAO().listar();
	}
	
	@GET
	@Path("/listarUsuario/{id}")
	@Produces("application/json")
	public UsuarioModel listarUsuario(@PathParam("id") Integer id){
		
		return new UsuarioDAO().listarUsuarioModel(id);
	}
	
	
}
